The present invention relates to the field of programming or re-programming a set-top terminal in a cable television system. More particularly, the present invention relates to the field of controlling the download of programming, such as an operating system or native suite objects, for a set-top terminal over the cable network for initial or upgrade programming of the set-top terminal.
In a typical cable television system, subscribers are provided with a set-top box or terminal. The set-top terminal is a box of electronic equipment that is used to connect the subscriber""s television, and potentially other electronic equipment, with the cable network. The set-top box is usually connected to the cable network through a co-axial wall outlet.
The set-top box is essentially a computer that is programmed to process the signals from the cable network so as to provide the subscriber with the cable services. These services from the cable television company typically include access to a number of television channels and, perhaps, an electronic programming guide (EPG).
Additional premium channels may also be provided to subscribers for an additional fee. Pay-per-view events and video-on-demand service may also be provided over the cable network. The set-top box is programmed to provide these services to the subscriber.
However, the services of the cable company need not be limited to providing television programming. Some cable companies are now offering internet access and e-mail service over their cable networks at speeds much faster than are available over conventional telephone lines. It is anticipated in the future that more and more services will be provided over the cable network, including perhaps even basic telephone service. Eventually, each home or office may have a single connection, via the cable network, to all electronic data services.
As the cable network and the services provided evolve, the set-top terminal must also evolve so as to be able to provide subscribers with all the services available from the cable network that are of interest to those subscribers. This set-top box evolution will primarily involve changes to the programming of the set-top box. By upgrading the software or firmware of the set-top box, the box can be made to perform more efficiently or offer new services as the cable network evolves.
In order to upgrade the population of set-top boxes on a cable network, it is preferable to transmit the new programming to the set-top boxes via the cable network itself. Otherwise, a technician must visit each subscriber to upgrade or re-program that subscriber""s set-top box. Such field upgrades would obviously be at significant expense.
The headend is the facility from which the cable network operator broadcasts television signals and provides other services over the cable network. Updated software that is provided to the population of set-top terminals is broadcast from the headend over the cable network. The headend may also broadcast messages or instructions over the cable network to the set-top terminals.
As used herein, a programming code object, or code object, refers to an individual program, i.e. a piece of software or firmware, that can be downloaded to and executed by a set-top terminal. More broadly, a data object refers to any data structure, including a code object, message or instruction, that is transmitted by the headend over the cable network to one or more set-top terminals.
Frequently, in order to provide new services or to upgrade the programming in a set-top terminal, the set-top terminal must acquire several new code objects, i.e., pieces of software or firmware. These various pieces of programming may frequently interact and require each other in order to function properly. Consequently, problems arise if the set-top terminal acquires some, but not all, of the code objects that are to be downloaded as part of the programming upgrade. When the set-top terminal begins running the newly-acquired code objects, those code objects may likely function improperly or not at all due to the absence of other interdependent code objects that the set-top terminal was to have acquired and executed.
Consequently, there is a need in the art for a method of controlling the download of code objects by a set-top terminal in a cable television system so as to prevent the execution of newly-acquired code objects that require the presence of other code objects which the set-top terminal was supposed to have acquired but was unable, for whatever reason, to download.
It is an object of the present invention to meet the above-described needs and others. Specifically, it is an object of the present invention to provide a system and method of controlling the download of code objects by a set-top terminal in a cable television system so as to prevent the execution of newly-acquired code objects that require the presence of other code objects which the set-top terminal was supposed to have acquired but was unable, for whatever reason, to download.
Additional objects, advantages and novel features of the invention will be set forth in the description which follows or may be learned by those skilled in the art through reading these materials or practicing the invention. The objects and advantages of the invention may be achieved through the means recited in the attached claims.
To achieve these stated and other objects, the present invention may be embodied and described as a method of managing and controlling a download of programming code objects to a set-top terminal connected to a cable television system so as to prevent disruptions to service by the set-top terminal that may arise if only some of a list of code objects specified in a download instruction message are successfully downloaded and might, therefore, function improperly or conflict with existing applications. The method of the present invention primarily operates by conditionally preventing the set-top terminal from enabling and executing any code object downloaded in response to receipt of the download instruction message unless all code objects listed for download in the download instruction message are acquired by the set-top terminal.
If all the code objects listed for download in the download instruction message are acquired by the set-top terminal, the present invention allows the set-top terminal to proceed with enabling and executing the acquired code objects. Preferably, the enabling of all the listed code objects is performed at the same time.
The step of conditionally preventing the set-top terminal from enabling and executing any code object downloaded in response to receipt by the set-top terminal of the download instruction message, unless all code objects listed for download in the download instruction message are acquired by the set-top terminal, is preferably performed in response to a list-only enable flag contained in the download instruction message. This allows the system operator to selectively prevent the set-top terminal for enabling and executing a portion of a list of code objects that the set-top terminal was to acquire. In other words, the set-top terminal will proceed to enable and execute any code objects downloaded in response to receipt by the set-top terminal of the download instruction message if the list-only enable flag in the download instruction message is negative, even if not all the listed objects were successfully acquired.
If all code objects listed for download in the download instruction message are not received by the set-top terminal, the method of the present invention may include purging from memory all the code objects that were downloaded by the set-top terminal in response to receipt of the download instruction message.
The present invention also encompasses the system and hardware for implementing the above-described method. For example, the present invention also encompasses a system for managing and controlling the download of programming code objects to a set-top terminal connected to a cable television system so as to prevent disruptions to service by the set-top terminal that may arise if only some of a list of code objects specified in a download instruction message are successfully downloaded and might, therefore, function improperly or conflict with existing applications. This system preferably includes: (1) at least one set-top terminal connected to the cable television system for receiving the data signal from the system headend; and (2) a system headend comprising a processor and transmitter for transmitting to the set-top terminal a download instruction message instructing the set-top terminal to download from the data signal a list of code objects. The set-top terminal typically includes a processor for executing programming, a memory for storing data and programming and a tuner for providing the data signal to the processor so that the set-top terminal can download code objects from the data signal. According to the present invention, the set-top terminal conditionally does not enable or execute any code object downloaded in response to receipt of the download instruction message unless all code objects listed for download in the download instruction message are acquired by the set-top terminal.